import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';

import { HttpClientModule } from '@angular/common/http';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MonacoEditorModule } from 'ngx-monaco-editor';
import { ButtonModule } from 'primeng/button';
import { CardModule } from 'primeng/card';
import { SidebarModule } from 'primeng/sidebar';
import { TableModule } from 'primeng/table';
import { ToolbarModule } from 'primeng/toolbar';
import { UtilsModule } from '../utils/utils.module';
import { AlgoGraphProcessService } from './algo-graph-process.service';
import { AlgoUnitService } from './algo-unit.service';
import { FlowGraphDesignService } from './flow-graph-design.service';
import { AlgoUnitSettingSidebarComponent } from './flow-graph-design/algo-unit-setting-sidebar/algo-unit-setting-sidebar.component';
import { FlowGraphDesignComponent } from './flow-graph-design/flow-graph-design.component';
import { FlowGraphRoutingModule } from './flow-graph-routing.module';
import { FlowGraphService } from './flow-graph.service';
import { FlowGraphComponent } from './flow-graph/flow-graph.component';


@NgModule({
  declarations: [
    FlowGraphComponent,
    FlowGraphDesignComponent,
    AlgoUnitSettingSidebarComponent
  ],
  imports: [
    UtilsModule,
    CardModule,
    TableModule,
    ToolbarModule,
    ButtonModule,
    SidebarModule,
    MonacoEditorModule.forRoot(),

    HttpClientModule,
    FormsModule,
    ReactiveFormsModule,
    CommonModule,
    FlowGraphRoutingModule
  ],
  providers: [
    FlowGraphService,
    AlgoUnitService,
    FlowGraphDesignService,
    AlgoGraphProcessService,
  ]
})
export class FlowGraphModule { }
